package com.gu.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 教师  加上序列化，在配置后可以上二级缓存！
 * @TableName edu_teacher
 */
@TableName(value ="edu_teacher")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EduTeacher implements Serializable {
    /**
     * 老师ID
     */
    @TableId
    private String id;

    /**
     * 老师姓名
     */
    private String name;

    /**
     * 老师介绍
     */
    private String intro;

    /**
     * 乐观锁
     * */
    @Version
    private Integer version;

    /**
     * 老师资历
     */
    private String career;

    /**
     * 老师级别，1.高级 ，2.中级，3初级
     */
    private Integer level;

    /**
     * 老师头像
     */
    private String avatar;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 逻辑删除 1（已删除），0（未删除）
     */
    @TableLogic
    private Boolean isDeleted;

    /**
     * 创建时间
     * 此处需要加上，自动填充的功能
     */
    @TableField(fill= FieldFill.INSERT_UPDATE)
    private Date gmtCreate;

    /**
     * 修改时间
     * 此处需要加上，自动填充的功能
     */
    @TableField(fill=FieldFill.INSERT)
    private Date gmtModified;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;


    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", intro=").append(intro);
        sb.append(", career=").append(career);
        sb.append(", level=").append(level);
        sb.append(", avatar=").append(avatar);
        sb.append(", sort=").append(sort);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}